100 '  programma 7  GRAFIEK VAN EEN CONTINUE FUNKTIE 
110 CLEAR ,19202 : SCREEN 105,,3,3
120 DEF FNX(X)=INT(1.55*(50+X)+.5)
130 CLS: KEY OFF
140 INPUT "LINKER-INTERVAL  GRENS A "; A : PRINT 
150 INPUT "RECHTER-INTERVAL GRENS B "; B : PRINT
160 IF A > B THEN C=A : A=B : B=C
170 HP=-100000! : LP=100000! : DX=(B-A)/64
180 FOR X=A TO B STEP DX
190		GOSUB 1000
200 	IF Y > HP THEN HP=Y
210 	IF Y < LP THEN LP=Y
220	 NEXT X
230	 PRINT "GROOTSTE Y-WAARDE : " ; HP : PRINT 
240	 PRINT "KLEINSTE Y-WAARDE : " ; LP : PRINT
250	 INPUT "BOVENGRENS VOOR Y    "; HP : PRINT
260	 INPUT "ONDERGRENS VOOR Y    "; LP
270	 CLS
280	 KX=320/(B-A) : KY=320/(HP-LP) : H=.5
290	 X=A : GOSUB 1000
300	 X1=0 : Y1=INT(KY*(HP-Y)+H)
310	 FOR X=(A+DX) TO B STEP DX
320		GOSUB 1000
330 	X2=INT(KX*(X-A)+H): Y2=INT(KY*(HP-Y)+H)
340 	LINE (FNX(X1),Y1)  (FNX(X2),Y2),1
350 	X1=X2 : Y1=Y2
360 NEXT X
370 Y1=INT(KY*HP+H): X1=INT(KX*(-A)+H)
380 IF Y1 < 0   OR   Y1 > 320   THEN GOTO 400
390 	  LINE (FNX(0),Y1)  (FNX(320),Y1),1
400 IF X1 < 0   OR   Y1 > 320   THEN GOTO  430
410 	  LINE (FNX(X1),0)  (FNX(X1),320),1
420 LINE (FNX(0),0)  (FNX(320),320),1,B	
430 A$=INKEY$: IF A$="" THEN 430
440 CLS: KEY ON: END
450 '
1000 Y=COS(X)*EXP(-.1*X)
1010 RETURN
Private Function Cartvorm(ByVal X As Single) As Single
	Return Math.Cos(X) * Math.Exp(-0.1 * X)
End Function

Private Sub frmProg7_Paint(ByVal sender As Object, ByVal e As ...PaintEventArgs) ...
	If txtA.Text() = "" OrElse txtB.Text() = "" _
OrElse txtHP.Text() = "" OrElse txtLP.Text() = "" Then
		Exit Sub
	End If
	Dim A As Single = Val(txtA.Text())
	Dim B As Single = Val(txtB.Text())
	If A > B Then
		Dim C As Single = A
		A = B
		B = C
	End If
	Dim HP As Single = -100000.0!, LP As Single = 100000.0!, DX As Single = (B  A) / 64
	Dim X, Y As Single
	For X = A To B Step DX
		Y = Cartvorm(X)
		If Y > HP Then HP = Y
		If Y < LP Then LP = Y
	Next
	lblHP.Text() = HP.ToString()
	lblLP.Text() = LP.ToString()
	HP = Val(txtHP.Text())
	LP = Val(txtLP.Text())
	Dim KX As Single = 320 / (B  A), KY As Single = 320 / (HP  LP), H As Single = 0.5
	X = A : Y = Cartvorm(X)
	Dim X1 As Single = 0, Y1 As Single = Int(KY * (HP  Y) + H)
	For X = (A + DX) To B Step DX
		Y = Cartvorm(X)
		Dim X2 As Single = Int(KX * (X  A) + H), Y2 As Single = Int(KY * (HP  Y) + H)
		e.Graphics.DrawLine(Pens.Black, X1, Y1, X2, Y2)
		X1 = X2 : Y1 = Y2
	Next
	Y1 = Int(KY * HP + H) : X1 = Int(KX * (-A) + H)
	If Y1 >= 0 And Y1 <= 320 Then
		e.Graphics.DrawLine(Pens.Black, 0, Y1, 320, Y1)
	End If
	If X1 >= 0 And X1 <= 320 Then
		e.Graphics.DrawLine(Pens.Black, X1, 0, X1, 320)
	Else
		Exit Sub
	End If
	e.Graphics.DrawRectangle(Pens.Black, 0, 0, 320, 320)
End Sub
Private Sub btnTeken_Click(ByVal sender As System.Object, ByVal e As ...EventArgs) ...
	Me.Refresh()
End Sub

